<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>2.全局函数定义特点</title>
</head>

<body>
  <script>
    //全局函数
    //声明全局函数时会把函数默认加载到 window 中，如果出现和已有的 window 方法重名，则原有方法会被新方法覆盖
    function hd () {
      console.log('后盾人');
    };
    //全局函数会被被挂载到window上，调用hd（） ，这样做是不推荐的，模块化处理更好
    hd(); //后盾人
    window.hd();//后盾人
    console.log(window);
    // Window { window: Window, self: Window, document: document, name: '', location: Location, … } hd: ƒ hd()
    //当我们定义了 screenX 函数后就覆盖了 window.screenX 
    function screenX () {
      return "后盾人";
    }
    console.log(window.screenX); //后盾人
    //ƒ screenX () {
    //   return "后盾人";
    //  }
    // 使用let / const时不会压入 window (但是var可以)
    const cms = function(){
      console.log('houdunren.com');
    };
     window.cms(); //2.全局函数定义特点.html:38 Uncaught TypeError: window.cms is not a function
    
  </script>
</body>

</html>